The server virtualization technique has a merit that the operation cost, the space for installing computers, and the power dissipation can be reduced by executing a plurality of virtual machines on one physical computer and reducing the number of physical computers. In recent years, therefore, the server virtualization technique has attracted attention. In order to ensure reliability equivalent to that in a system operated in physical computers, however, not only multiplexing of physical computers which provide the virtualization environment but also a multiplexing structure of virtual machines controlled and operated in each physical computer is demanded.
A method for detecting a failure and switching a system by taking each of virtual machines on physical computers as the unit is disclosed in Patent Literature 1. According to Patent Literature 1, physical computers 2001 and 2031 are multiplexed via a LAN, the physical computer A 2001 has a host machine 2002 and a server virtualization environment including virtual machines 2005 and 2015, and the physical computer B 2031 also has a similar structure, as shown in FIG. 20. Furthermore, as a failure detection method and a system switching method, a guest cluster program 2007 is provided on the virtual machine A 2005 on the physical computer A 2001, a guest cluster program 2017 is provided on the virtual machine B 2015, and a host cluster program 2003 is provided on the host machine 2002. The physical computer B 2031 also has a similar structure.
The guest cluster programs 2007 and 2017, or 2037 and 2047 monitor operation situations of application programs 2006 and 2016, or 2036 and 2046, and give a notice of a result of the monitoring to the host cluster program 2003 or 2033. Upon receiving a system switching instruction from the host cluster program 2003, the guest cluster programs 2007 and 2017 execute system switching of a master/slave mode for their respective corresponding virtual machines 2005 and 2015. When the virtual machine is in the master mode, the application conducts processing on input data and outputs a result of the processing. On the other hand, when the virtual machine is in the slave mode, the application conducts processing on input data, but it doesn't output a processing result. Upon receiving a system switching instruction from the host cluster program 2033, the guest cluster programs 2037 and 2047 also execute system switching of a master/slave mode for their respective corresponding virtual machines 2035 and 2045 in the same way. On the other hand, the host cluster program 2003 or 2013 monitors operation situations of virtual machines operating on the same physical computer (the virtual machines 2005 and 2015 or the virtual machines 2035 and 2045). For example, upon detecting that the virtual machine A 2005 in the master mode is suspended, the host cluster program 2013 switches the virtual machine A 2035 from the slave mode to the master mode.